//package com.yk.system.service.impl;
//import com.google.gson.Gson;
//import com.yk.common.core.domain.entity.SysUser;
//import com.yk.common.utils.DateUtils;
//import com.yk.common.wx.JWTUtils;
//import com.yk.common.wx.WeChatSessionModel;
//import com.yk.system.mapper.SysUserMapper;
//import com.yk.system.service.UserInfoService;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.http.HttpMethod;
//import org.springframework.http.HttpStatus;
//import org.springframework.http.ResponseEntity;
//import org.springframework.stereotype.Service;
//import org.springframework.web.client.RestTemplate;
//
//import javax.annotation.Resource;
//import java.util.HashMap;
//import java.util.Map;
//import java.util.UUID;
//
///**
// * Date:2023/5/24
// * author:zmh
// * description: 用户信息业务层实现类
// **/
//
//@Service
//@Slf4j
//public class UserInfoServiceImpl implements UserInfoService {
//
//    @Autowired
//    private SysUserMapper sysUserMapper;
//
//    @Value("${APPID}")
//    private String appid;
//
//    @Value("${APPSECRET}")
//    private String appsecret;
//
////    @Resource
////    private RestTemplate restTemplate;
//
//    // 用于存储用户信息和token
//    Map<String,Object> map = new HashMap<>();
//
//    /**
//     * 登录验证
//     * @param code 临时登录码
//     * @return ·
//     */
//    public Map<String,Object> checkLogin(String code){
//        // 根据传入code，调用微信服务器，获取唯一openid
//        // 微信服务器接口地址
//        String url = "https://api.weixin.qq.com/sns/jscode2session?appid="+appid+ "&secret="+appsecret
//                +"&js_code="+ code +"&grant_type=authorization_code";
//        String errmsg = "";
//        String errcode = "";
//        String session_key = "";
//        String openid = "";
//        WeChatSessionModel weChatSessionModel;
//        // 发送请求
////        ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.GET, null, String.class);
//        // 判断请求是否成功
////        if(responseEntity != null && responseEntity.getStatusCode() == HttpStatus.OK) {
//            // 获取主要内容
//            String sessionData = responseEntity.getBody();
//            Gson gson = new Gson();
//            //将json字符串转化为实体类;
//            weChatSessionModel = gson.fromJson(sessionData, WeChatSessionModel.class);
//            log.info("返回的数据==>{}",weChatSessionModel);
//            //获取用户的唯一标识openid
//            openid = weChatSessionModel.getOpenid();
//            //获取错误码
//            errcode = weChatSessionModel.getErrcode();
//            //获取错误信息
//            errmsg = weChatSessionModel.getErrmsg();
//        }else{
//            log.info("出现错误，错误信息：{}",errmsg );
//            map.put("errmsg",errmsg);
//            return map;
//        }
//        // 判断是否成功获取到openid
//        if ("".equals(openid) || openid == null){
//            log.info("错误获取openid,错误信息:{}",errmsg);
//            map.put("errmsg",errmsg);
//            return map;
//        }else{
//            // 判断用户是否存在，查询数据库
//            SysUser userInfo = sysUserMapper.selectUserByOpenId(openid);
//            // 不存在，加入数据表
//            if (userInfo == null){
//                // 填充初始信息
//                SysUser tempUserInfo = new SysUser();
//                tempUserInfo.setOpenId(openid);
//                tempUserInfo.setCreateTime(DateUtils.getNowDate());
//                // 加入数据表
//                sysUserMapper.insertUser(tempUserInfo);
//                // 加入map返回
//                map.put("user",tempUserInfo);
//                // 调用自定义类封装的方法，创建token
//                String token = JWTUtils.createToken(tempUserInfo.getUserId().toString());
//                map.put("token",token);
//                return map;
//            }else{
//                // 存在，将用户信息加入map返回
//                map.put("user",userInfo);
//                String token = JWTUtils.createToken(userInfo.getUserId().toString());
//                map.put("token",token);
//                return map;
//            }
//        }
//    }
//
//
//}
